[INFO] cloning repository https://github.com/xufanglin/acp-link
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/xufanglin/acp-link" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fxufanglin%2Facp-link", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fxufanglin%2Facp-link'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 91951e382fcc0281677642d28797208100294bad
[INFO] testing xufanglin/acp-link against try#0abe69e6c16114311cc2700e972492e64d69c28f for pr-154065-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fxufanglin%2Facp-link" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/xufanglin/acp-link
[INFO] finished tweaking git repo https://github.com/xufanglin/acp-link
[INFO] tweaked toml for git repo https://github.com/xufanglin/acp-link written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/xufanglin/acp-link on toolchain 0abe69e6c16114311cc2700e972492e64d69c28f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/xufanglin/acp-link already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 11c428b71e0236384e1cbe2df8033c02f0b0a9cbd034a8d19680af17cc238bf8
[INFO] running `Command { std: "docker" "start" "-a" "11c428b71e0236384e1cbe2df8033c02f0b0a9cbd034a8d19680af17cc238bf8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "11c428b71e0236384e1cbe2df8033c02f0b0a9cbd034a8d19680af17cc238bf8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "11c428b71e0236384e1cbe2df8033c02f0b0a9cbd034a8d19680af17cc238bf8", kill_on_drop: false }`
[INFO] [stdout] 11c428b71e0236384e1cbe2df8033c02f0b0a9cbd034a8d19680af17cc238bf8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f74fa82dac75aed7e01223a3c482d118a85905832a74b6eb2cbdcd349ec6aaeb
[INFO] running `Command { std: "docker" "start" "-a" "f74fa82dac75aed7e01223a3c482d118a85905832a74b6eb2cbdcd349ec6aaeb", kill_on_drop: false }`
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling dunce v1.0.5
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling fs_extra v1.3.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling futures-channel v0.3.32
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling cc v1.2.56
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling rustls-pki-types v1.14.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling http v1.4.0
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling aws-lc-rs v1.16.1
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling rustls v0.23.37
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling sync_wrapper v1.0.2
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling cmake v0.1.57
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling concurrent-queue v2.5.0
[INFO] [stderr]    Compiling ref-cast-impl v1.0.25
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling aws-lc-sys v0.38.0
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling unicode-xid v0.2.6
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]    Compiling event-listener v5.4.1
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling derive_more-impl v2.1.1
[INFO] [stderr]    Compiling schemars_derive v1.2.1
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling ref-cast v1.0.25
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling http-body-util v0.1.3
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling openssl-probe v0.2.1
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling deranged v0.5.8
[INFO] [stderr]    Compiling derive_more v2.1.1
[INFO] [stderr]    Compiling rustls-native-certs v0.8.3
[INFO] [stderr]    Compiling schemars v1.2.1
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling webpki-roots v1.0.6
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling data-encoding v2.10.0
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling h2 v0.4.13
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling iri-string v0.7.10
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling time v0.3.47
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling async-broadcast v0.7.2
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling prost-derive v0.14.3
[INFO] [stderr]    Compiling toml_parser v1.0.9+spec-1.1.0
[INFO] [stderr]    Compiling tower-http v0.6.8
[INFO] [stderr]    Compiling agent-client-protocol-schema v0.11.2
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling axum-core v0.5.6
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling serde_spanned v1.0.4
[INFO] [stderr]    Compiling toml_datetime v0.7.5+spec-1.1.0
[INFO] [stderr]    Compiling toml_writer v1.0.6+spec-1.1.0
[INFO] [stderr]    Compiling tracing-appender v0.2.4
[INFO] [stderr]    Compiling toml v0.9.12+spec-1.1.0
[INFO] [stderr]    Compiling prost v0.14.3
[INFO] [stderr]    Compiling uuid v1.22.0
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling hyper v1.8.1
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling axum v0.8.8
[INFO] [stderr]    Compiling agent-client-protocol v0.10.2
[INFO] [stderr]    Compiling rustls-webpki v0.103.9
[INFO] [stderr]    Compiling tokio-rustls v0.26.4
[INFO] [stderr]    Compiling rustls-platform-verifier v0.6.2
[INFO] [stderr]    Compiling tungstenite v0.29.0
[INFO] [stderr]    Compiling hyper-rustls v0.27.7
[INFO] [stderr]    Compiling reqwest v0.13.2
[INFO] [stderr]    Compiling tokio-tungstenite v0.29.0
[INFO] [stderr]    Compiling acp-link v0.2.6 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3m 08s
[INFO] running `Command { std: "docker" "inspect" "f74fa82dac75aed7e01223a3c482d118a85905832a74b6eb2cbdcd349ec6aaeb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f74fa82dac75aed7e01223a3c482d118a85905832a74b6eb2cbdcd349ec6aaeb", kill_on_drop: false }`
[INFO] [stdout] f74fa82dac75aed7e01223a3c482d118a85905832a74b6eb2cbdcd349ec6aaeb
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] dd8ce59b7b5ff674d19212790c0ba3ceedeb606931c99ee85ebf12bc917e01d0
[INFO] running `Command { std: "docker" "start" "-a" "dd8ce59b7b5ff674d19212790c0ba3ceedeb606931c99ee85ebf12bc917e01d0", kill_on_drop: false }`
[INFO] [stderr]    Compiling acp-link v0.2.6 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 13.68s
[INFO] running `Command { std: "docker" "inspect" "dd8ce59b7b5ff674d19212790c0ba3ceedeb606931c99ee85ebf12bc917e01d0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dd8ce59b7b5ff674d19212790c0ba3ceedeb606931c99ee85ebf12bc917e01d0", kill_on_drop: false }`
[INFO] [stdout] dd8ce59b7b5ff674d19212790c0ba3ceedeb606931c99ee85ebf12bc917e01d0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] c992e08f666c2ee2e89d5167d85d94aa18442b393822669d6931c863e1ce088c
[INFO] running `Command { std: "docker" "start" "-a" "c992e08f666c2ee2e89d5167d85d94aa18442b393822669d6931c863e1ce088c", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.44s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/acp_link-269a639a85f6d741)
[INFO] [stdout] 
[INFO] [stdout] running 155 tests
[INFO] [stdout] test config::tests::test_data_dir_contains_acp_link ... ok
[INFO] [stdout] test config::tests::test_load_nonexistent_file_returns_error ... ok
[INFO] [stdout] test im::feishu::client::tests::test_build_ping_fields ... ok
[INFO] [stdout] test config::tests::test_load_invalid_toml_returns_error ... ok
[INFO] [stdout] test config::tests::test_discover_via_env_var ... ok
[INFO] [stdout] test config::tests::test_load_default_pool_size ... ok
[INFO] [stdout] test config::tests::test_load_default_log_level ... ok
[INFO] [stdout] test config::tests::test_load_custom_pool_size ... ok
[INFO] [stdout] test config::tests::test_load_custom_log_level ... ok
[INFO] [stdout] test im::feishu::client::tests::test_build_ping_seq_zero ... ok
[INFO] [stdout] test im::feishu::client::tests::test_feishu_event_deserialize ... ok
[INFO] [stdout] test im::feishu::client::tests::test_is_live_frame ... ok
[INFO] [stdout] test im::feishu::client::tests::test_msg_receive_payload_deserialize ... ok
[INFO] [stdout] test im::feishu::client::tests::test_fragment_reassembly_incomplete ... ok
[INFO] [stdout] test im::feishu::client::tests::test_fragment_reassembly_logic ... ok
[INFO] [stdout] test im::feishu::client::tests::test_msg_receive_payload_group_with_mention ... ok
[INFO] [stdout] test im::feishu::client::tests::test_parse_audio_content_valid ... ok
[INFO] [stdout] test im::feishu::client::tests::test_parse_file_content_valid ... ok
[INFO] [stdout] test config::tests::test_load_valid_config ... ok
[INFO] [stdout] test im::feishu::client::tests::test_parse_image_content_empty_json ... ok
[INFO] [stdout] test im::feishu::client::tests::test_parse_image_content_valid ... ok
[INFO] [stdout] test im::feishu::client::tests::test_parse_service_id ... ok
[INFO] [stdout] test im::feishu::client::tests::test_parse_service_id_first_param ... ok
[INFO] [stdout] test im::feishu::client::tests::test_parse_service_id_non_numeric ... ok
[INFO] [stdout] test im::feishu::client::tests::test_parse_sticker_content_valid ... ok
[INFO] [stdout] test im::feishu::client::tests::test_parse_text_content ... ok
[INFO] [stdout] test im::feishu::client::tests::test_parse_service_id_no_query_string ... ok
[INFO] [stdout] test im::feishu::client::tests::test_parse_text_content_whitespace_only ... ok
[INFO] [stdout] test im::feishu::client::tests::test_parse_text_content_empty ... ok
[INFO] [stdout] test im::feishu::client::tests::test_pbframe_decode_empty_bytes_gives_default ... ok
[INFO] [stdout] test im::feishu::client::tests::test_parse_text_content_missing_text_field ... ok
[INFO] [stdout] test im::feishu::client::tests::test_parse_file_content_missing_fields ... ok
[INFO] [stdout] test im::feishu::client::tests::test_parse_text_content_invalid_json ... ok
[INFO] [stdout] test im::feishu::client::tests::test_pbframe_encode_decode_roundtrip ... ok
[INFO] [stdout] test im::feishu::client::tests::test_pbframe_header_value_found ... ok
[INFO] [stdout] test im::feishu::client::tests::test_pbframe_encode_decode_no_payload ... ok
[INFO] [stdout] test im::feishu::client::tests::test_pbframe_header_value_not_found ... ok
[INFO] [stdout] test im::feishu::client::tests::test_root_id_empty_string_becomes_none ... ok
[INFO] [stdout] test im::feishu::client::tests::test_root_id_non_empty_preserved ... ok
[INFO] [stdout] test im::feishu::client::tests::test_strip_at_placeholders ... ok
[INFO] [stdout] test im::feishu::client::tests::test_pbframe_header_value_multiple_headers ... ok
[INFO] [stdout] test im::feishu::client::tests::test_strip_at_placeholders_empty_string ... ok
[INFO] [stdout] test im::feishu::client::tests::test_strip_at_placeholders_at_end_of_string ... ok
[INFO] [stdout] test im::feishu::client::tests::test_strip_at_placeholders_no_change ... ok
[INFO] [stdout] test im::feishu::client::tests::test_sum_zero_normalized_to_one ... ok
[INFO] [stdout] test im::feishu::client::tests::test_ws_client_config_deserialize_missing_interval ... ok
[INFO] [stdout] test im::feishu::client::tests::test_ws_client_config_deserialize_with_interval ... ok
[INFO] [stdout] test im::feishu::mcp_tools::tests::test_basename_nested_path ... ok
[INFO] [stdout] test im::feishu::mcp_tools::tests::test_basename_filename_only ... ok
[INFO] [stdout] test im::feishu::mcp_tools::tests::test_basename_normal_path ... ok
[INFO] [stdout] test im::feishu::client::tests::test_parse_media_content_valid ... ok
[INFO] [stdout] test im::feishu::client::tests::test_parse_service_id_missing ... ok
[INFO] [stdout] test im::feishu::mcp_tools::tests::test_basename_empty_string ... ok
[INFO] [stdout] test im::feishu::mcp_tools::tests::test_list_returns_feishu_tools ... ok
[INFO] [stdout] test im::feishu::mcp_tools::tests::test_is_image_file_png ... ok
[INFO] [stdout] test im::feishu::client::tests::test_strip_at_placeholders_at_sign_only ... ok
[INFO] [stdout] test im::feishu::client::tests::test_strip_at_placeholders_multiple_consecutive ... ok
[INFO] [stdout] test im::feishu::mcp_tools::tests::test_is_image_file_jpg_jpeg ... ok
[INFO] [stdout] test im::feishu::mcp_tools::tests::test_is_image_file_gif_webp_bmp ... ok
[INFO] [stdout] test im::feishu::mcp_tools::tests::test_is_image_file_non_image ... ok
[INFO] [stdout] test link::acp::tests::test_image_block_empty_data ... ok
[INFO] [stdout] test link::acp::tests::test_image_block_is_base64_encoded ... ok
[INFO] [stdout] test link::acp::tests::test_route_consistent_across_calls ... ok
[INFO] [stdout] test link::acp::tests::test_route_different_keys_may_differ ... ok
[INFO] [stdout] test link::acp::tests::test_resource_link_block_with_mime ... ok
[INFO] [stdout] test link::acp::tests::test_route_same_key_always_same_worker ... ok
[INFO] [stdout] test link::acp::tests::test_select_permission_allow_always_first_in_list_wins ... ok
[INFO] [stdout] test link::acp::tests::test_route_single_worker_always_same ... ok
[INFO] [stdout] test link::acp::tests::test_route_idx_within_bounds ... ok
[INFO] [stdout] test link::acp::tests::test_resource_link_block_without_mime ... ok
[INFO] [stdout] test link::acp::tests::test_select_permission_only_allow_always ... ok
[INFO] [stdout] test link::acp::tests::test_select_permission_allow_once_over_deny ... ok
[INFO] [stdout] test link::acp::tests::test_select_permission_allow_always_wins ... ok
[INFO] [stdout] test link::acp::tests::test_stable_hash_deterministic ... ok
[INFO] [stdout] test link::acp::tests::test_stable_hash_different_inputs ... ok
[INFO] [stdout] test link::acp::tests::test_image_block_mime_type_preserved ... ok
[INFO] [stdout] test link::acp::tests::test_select_permission_empty_options_returns_none ... ok
[INFO] [stdout] test link::acp::tests::test_select_permission_fallback_to_first ... ok
[INFO] [stdout] test link::acp::tests::test_text_block_content ... ok
[INFO] [stdout] test link::acp::tests::test_text_block_empty_string ... ok
[INFO] [stdout] test link::acp::tests::test_text_block_unicode ... ok
[INFO] [stdout] test link::resource::tests::test_cleanup_expired_ignores_subdirectories ... ok
[INFO] [stdout] test link::resource::tests::test_cleanup_expired_ignores_fresh_files ... ok
[INFO] [stdout] test link::resource::tests::test_hex_sha256_deterministic ... ok
[INFO] [stdout] test link::resource::tests::test_cleanup_expired_returns_zero_for_empty_dir ... ok
[INFO] [stdout] test link::resource::tests::test_hex_sha256_known_value ... ok
[INFO] [stdout] test link::resource::tests::test_hex_sha256_output_format ... ok
[INFO] [stdout] test link::resource::tests::test_resource_store_clone ... ok
[INFO] [stdout] test link::resource::tests::test_cleanup_expired_mixed_files ... ok
[INFO] [stdout] test link::resource::tests::test_resource_store_new ... ok
[INFO] [stdout] test link::resource::tests::test_hex_sha256_different_inputs_differ ... ok
[INFO] [stdout] test link::resource::tests::test_hex_sha256_empty_input ... ok
[INFO] [stdout] test link::resource::tests::test_cleanup_expired_multiple_old_files ... ok
[INFO] [stdout] test link::resource::tests::test_cleanup_expired_removes_old_files ... ok
[INFO] [stdout] test link::resource::tests::test_cleanup_expired_returns_zero_for_nonexistent_dir ... ok
[INFO] [stdout] test link::resource::tests::test_to_file_uri_absolute_path ... ok
[INFO] [stdout] test link::resource::tests::test_to_file_uri_filename_only ... ok
[INFO] [stdout] test link::session::tests::test_get_session_id_returns_none_for_unknown_thread ... ok
[INFO] [stdout] test link::resource::tests::test_to_file_uri_nested_path ... ok
[INFO] [stdout] test link::session::tests::test_insert_and_get_session_id ... ok
[INFO] [stdout] test link::session::tests::test_get_topic_id_returns_none_for_unknown_message ... ok
[INFO] [stdout] test link::session::tests::test_load_creates_empty_map_when_file_missing ... ok
[INFO] [stdout] test link::session::tests::test_get_session_id_ignores_empty_session_id ... ok
[INFO] [stdout] test link::session::tests::test_cleanup_expired_returns_zero_when_nothing_expired ... ok
[INFO] [stdout] test link::session::tests::test_map_topic_and_get_topic_id ... ok
[INFO] [stdout] test link::session::tests::test_cleanup_expired_removes_old_entries ... ok
[INFO] [stdout] test link::session::tests::test_cleanup_expired_also_clears_topic_index ... ok
[INFO] [stdout] test link::session::tests::test_insert_without_map_topic_has_no_topic_index ... ok
[INFO] [stdout] test link::tests::test_detect_image_mime_empty_data ... ok
[INFO] [stdout] test link::session::tests::test_insert_updates_existing_session_id ... ok
[INFO] [stdout] test link::tests::test_detect_image_mime_fallback ... ok
[INFO] [stdout] test link::tests::test_detect_image_mime_gif ... ok
[INFO] [stdout] test link::session::tests::test_map_topic_then_insert_keeps_topic_index ... ok
[INFO] [stdout] test link::tests::test_detect_image_mime_jpeg ... ok
[INFO] [stdout] test link::session::tests::test_load_invalid_json_returns_error ... ok
[INFO] [stdout] test link::tests::test_detect_image_mime_png ... ok
[INFO] [stdout] test link::tests::test_format_summary_audio ... ok
[INFO] [stdout] test link::tests::test_format_summary_image ... ok
[INFO] [stdout] test link::tests::test_detect_image_mime_riff_without_webp ... ok
[INFO] [stdout] test link::tests::test_detect_image_mime_webp ... ok
[INFO] [stdout] test link::tests::test_format_summary_file ... ok
[INFO] [stdout] test link::tests::test_format_summary_text ... ok
[INFO] [stdout] test link::session::tests::test_map_topic_does_not_overwrite_existing_entry ... ok
[INFO] [stdout] test link::session::tests::test_persistence_across_reload ... ok
[INFO] [stdout] test link::tests::test_is_actionable_message_false_for_file ... ok
[INFO] [stdout] test link::tests::test_format_summary_unsupported ... ok
[INFO] [stdout] test link::tests::test_is_actionable_message_false_for_image ... ok
[INFO] [stdout] test link::tests::test_is_actionable_message_false_for_unsupported ... ok
[INFO] [stdout] test link::tests::test_is_actionable_message_true ... ok
[INFO] [stdout] test link::tests::test_mime_from_filename_doc ... ok
[INFO] [stdout] test link::tests::test_mime_from_filename_docx ... ok
[INFO] [stdout] test link::tests::test_mime_from_filename_json ... ok
[INFO] [stdout] test link::tests::test_mime_from_filename_md ... ok
[INFO] [stdout] test link::tests::test_is_actionable_message_false_for_audio ... ok
[INFO] [stdout] test link::tests::test_format_summary_media ... ok
[INFO] [stdout] test link::tests::test_mime_from_filename_jpeg ... ok
[INFO] [stdout] test link::tests::test_mime_from_filename_multiple_dots ... ok
[INFO] [stdout] test link::tests::test_mime_from_filename_no_extension ... ok
[INFO] [stdout] test link::tests::test_mime_from_filename_png ... ok
[INFO] [stdout] test link::tests::test_mime_from_filename_pdf ... ok
[INFO] [stdout] test link::tests::test_mime_from_filename_pptx ... ok
[INFO] [stdout] test link::tests::test_mime_from_filename_unknown_extension ... ok
[INFO] [stdout] test link::tests::test_mime_from_filename_txt ... ok
[INFO] [stdout] test link::tests::test_format_summary_sticker ... ok
[INFO] [stdout] test link::tests::test_mime_from_filename_xlsx ... ok
[INFO] [stdout] test link::tests::test_mime_from_filename_uppercase_extension ... ok
[INFO] [stdout] test mcp::tests::test_json_response_without_session_id ... ok
[INFO] [stdout] test mcp::tests::test_handle_get_returns_method_not_allowed ... ok
[INFO] [stdout] test mcp::tests::test_make_error_null_id ... ok
[INFO] [stdout] test mcp::tests::test_make_error_structure ... ok
[INFO] [stdout] test mcp::tests::test_json_response_with_session_id ... ok
[INFO] [stdout] test link::session::tests::test_multiple_threads_independent ... ok
[INFO] [stdout] test mcp::tests::test_handle_tools_list_response ... ok
[INFO] [stdout] test im::feishu::mcp_tools::tests::test_call_unknown_tool_returns_error ... ok
[INFO] [stdout] test mcp::tests::test_handle_initialize_response ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 155 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.43s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/acp_link-49402d3f17bd375b)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests acp_link
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test src/im/feishu/client.rs - im::feishu::client::FeishuClient (line 236) ... ignored
[INFO] [stdout] test src/config.rs - config::AppConfig::discover (line 226) - compile ... ok
[INFO] [stdout] test src/config.rs - config::AppConfig::load (line 193) - compile ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 1.16s; merged doctests compilation took 1.12s
[INFO] running `Command { std: "docker" "inspect" "c992e08f666c2ee2e89d5167d85d94aa18442b393822669d6931c863e1ce088c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c992e08f666c2ee2e89d5167d85d94aa18442b393822669d6931c863e1ce088c", kill_on_drop: false }`
[INFO] [stdout] c992e08f666c2ee2e89d5167d85d94aa18442b393822669d6931c863e1ce088c
